package thinkingJava.chapter13;

import java.io.IOException;

import thinkingJava.chapter18.BinaryFile;

public class Hex {
	public static String format(byte[] data) {
		StringBuilder result = new StringBuilder();
		int n = 0;
		for (byte b : data) {
			if (n % 16 == 0) {
				result.append(String.format("%05x : ", b));
			}
			result.append(String.format("%02x ", b));
			n++;
			if (n % 16 == 0) {
				result.append("\n");
			}
		}
		result.append("\n");
		return result.toString();
	}
	public static void main(String[] args) throws IOException {
		if (args.length == 0) {
			System.out.println(
					format(BinaryFile.read("Hex.class")));
		} else {
			System.out.println(
					format(BinaryFile.read(args[1])));
		}
	}
}
